﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Web;
//using ComputerShopE3.Models;
//namespace ComputerShopE3.Controllers
//{
//    [AttributeUsage(AttributeTargets.All)]
//    public class AuthoriseRoles : System.Attribute
//    {
//        ComputerShopDBEntities1 _db = new ComputerShopDBEntities1();
//        public AuthoriseRoles(string PermRequest)
//        {
//            if (_authorize)
//            {
//                //redirect if not authenticated
//                if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
//                {
//                    //use the current url for the redirect
//                    var redirectOnSuccess = filterContext.HttpContext.Request.Url.AbsolutePath;

//                    //send them off to the login page
//                    //var redirectUrl = string.Format("?RedirectUrl={0}", redirectOnSuccess);
//                    var loginUrl = LinkBuilder.BuildUrlFromExpression<HomeController>(filterContext.RequestContext, RouteTable.Routes,
//                                                                                      x => x.Login(redirectOnSuccess));
//                    filterContext.HttpContext.Response.Redirect(loginUrl, true);
//                }
//            } 
//        }
//    }
//}


//public class RequiresAuthorizationAttribute : ActionFilterAttribute
//{
//    private readonly bool _authorize;

//    public RequiresAuthorizationAttribute()
//    {
//        _authorize = true;
//    }

//    public RequiresAuthorizationAttribute(bool authorize)
//    {
//        _authorize = authorize;
//    }

//    public override void OnActionExecuting(ActionExecutingContext filterContext)
//    {
//        var overridingAttributes = filterContext.ActionDescriptor.GetCustomAttributes(typeof(RequiresAuthorizationAttribute), false);

//        if (overridingAttributes.Length > 0 && overridingAttributes[0] as RequiresAuthorizationAttribute != null && !((RequiresAuthorizationAttribute)overridingAttributes[0])._authorize)
//            return;

//        if (_authorize)
//        {
//            //redirect if not authenticated
//            if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
//            {
//                //use the current url for the redirect
//                var redirectOnSuccess = filterContext.HttpContext.Request.Url.AbsolutePath;

//                //send them off to the login page
//                //var redirectUrl = string.Format("?RedirectUrl={0}", redirectOnSuccess);
//                var loginUrl = LinkBuilder.BuildUrlFromExpression<HomeController>(filterContext.RequestContext, RouteTable.Routes,
//                                                                                  x => x.Login(redirectOnSuccess));
//                filterContext.HttpContext.Response.Redirect(loginUrl, true);
//            }
//        }
//    }
//}
